Help needed with some Math lib failures

Folks, There are a few failures from Boost.Math (for example http://tinyurl.com/clvlq3) which I'm unable to reproduce locally - it seems only certain (possibly AMD x86-64 machines running Linux or *BSD) exhibit the problem. I can provide a test case to help with debugging what's going on, but I need to find someone who can reproduce the issue first. So... if you think you can help, then cd into libs/math/test and do a: bjam gcc test_hypergeometric_dist0 test_hypergeometric_dist1 test_hypergeometric_dist2 test_hypergeometric_dist3 test_hypergeometric_dist4 test_hypergeometric_dist5 and if one or more fail then let me know the failure message and I'll put together a test case. Many thanks in advance! John.

Folks,
There are a few failures from Boost.Math (for example http://tinyurl.com/clvlq3) which I'm unable to reproduce locally - it seems only certain (possibly AMD x86-64 machines running Linux or *BSD) exhibit the problem. I can provide a test case to help with debugging what's going on, but I need to find someone who can reproduce the issue first. So... if you think you can help, then cd into libs/math/test and do a:
bjam gcc test_hypergeometric_dist0 test_hypergeometric_dist1 test_hypergeometric_dist2 test_hypergeometric_dist3 test_hypergeometric_dist4 test_hypergeometric_dist5
and if one or more fail then let me know the failure message and I'll put together a test case. I can reproduce the failure for dist1, dist2, dist3 and dist5. The full error message is too long for this list to accept, so I'm just posting
John Maddock wrote: the message of dist1. Linux x86-64, GCC 4.3.3 Running 1 test case... Checking quantiles with Mathematica data with type float ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Checking quantiles with Random large data with type float ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Absolute tolerance:1.19209e-07 Tolerance for type f is 0.000596046 % Checking quantiles with Mathematica data with type double ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Checking quantiles with Random large data with type double ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ test_hypergeometric_dist.cpp(240): error in "test_main_caller( argc, argv )": check quantile(du, cp) >= x failed Failure was with data x = 30520, r = 130605, n = 130605, N = 523360, p = 1.315394088731268169855067478460234e-53, q = 1 Absolute tolerance:2.22045e-16 Tolerance for type d is 1.11022e-12 % Checking quantiles with Mathematica data with type long double ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Checking quantiles with Random large data with type long double ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ test_hypergeometric_dist.cpp(240): error in "test_main_caller( argc, argv )": check quantile(du, cp) >= x failed Failure was with data x = 30520, r = 130605, n = 130605, N = 523360, p = 1.3153940887312682609778382091540272e-53, q = 1 test_hypergeometric_dist.cpp(240): error in "test_main_caller( argc, argv )": check quantile(du, cp) >= x failed Failure was with data x = 4770, r = 130605, n = 130605, N = 1030167, p = 1.22798082982754627280320578058046e-3094, q = 1 test_hypergeometric_dist.cpp(240): error in "test_main_caller( argc, argv )": check quantile(du, cp) >= x failed Failure was with data x = 15134, r = 256574, n = 130605, N = 1030167, p = 1.1105244685326902267944526554403882e-3545, q = 1 test_hypergeometric_dist.cpp(240): error in "test_main_caller( argc, argv )": check quantile(du, cp) >= x failed Failure was with data x = 11903, r = 256574, n = 256574, N = 2427690, p = 1.9101122505923986270675426093883161e-2808, q = 1 test_hypergeometric_dist.cpp(240): error in "test_main_caller( argc, argv )": check quantile(du, cp) >= x failed Failure was with data x = 241837, r = 523360, n = 523360, N = 1030167, p = 2.6242122183575062859028854854238337e-1957, q = 1 test_hypergeometric_dist.cpp(240): error in "test_main_caller( argc, argv )": check quantile(du, cp) >= x failed Failure was with data x = 208651, r = 2063277, n = 256574, N = 2427690, p = 4.0582793494211428626917554262141244e-625, q = 1 Absolute tolerance:2e-16 Tolerance for type e is 1e-12 % Checking quantiles with Mathematica data with type real_concept ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Absolute tolerance:2e-16 Tolerance for type N5boost4math8concepts12real_conceptE is 1e-12 % *** 7 failures detected in test suite "Test Program" EXIT STATUS: 201

put together a test case. I can reproduce the failure for dist1, dist2, dist3 and dist5. The full error message is too long for this list to accept, so I'm just posting
and if one or more fail then let me know the failure message and I'll the message of dist1.
Thanks, can I get you to do an SVN update and try the program below? The output will be *very* verbose, so you may need to .zip it up and mail me directly with it, Many thanks, John. #define BOOST_MATH_INSTRUMENT #include <boost/math/distributions.hpp> int main() { double x = 30520, r = 130605, n = 130605, N = 523360, p = 1.315394088731268169855067478460234e-53, q = 1; boost::math::hypergeometric_distribution<> hyp(r, n, N); unsigned x_found = quantile(hyp, p); BOOST_MATH_INSTRUMENT_VARIABLE(x_found); return 0; }
participants (2)
-
John Maddock
-
Sebastian Redl