diff options
author | Paolo Carlini <paolo.carlini@oracle.com> | 2013-06-22 21:07:02 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2013-06-22 21:07:02 +0000 |
commit | 07bba3b144e10e4296154f34a405b12d6af33798 (patch) | |
tree | 5373a5fcd9791a9d9210d1c1d6f90dbed71b4bd9 /libstdc++-v3/testsuite | |
parent | 11e8f687dff42b0ef93f940b8c2ce772962735d3 (diff) | |
download | gcc-07bba3b144e10e4296154f34a405b12d6af33798.zip gcc-07bba3b144e10e4296154f34a405b12d6af33798.tar.gz gcc-07bba3b144e10e4296154f34a405b12d6af33798.tar.bz2 |
re PR libstdc++/57674 (wrong distribution for std::binomial_distribution::operator()(g,param))
2013-06-22 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/57674
* include/bits/random.h (binomial_distribution<>::_M_waiting):
Add double parameter.
* include/bits/random.tcc (binomial_distribution<>::operator()
(_UniformRandomNumberGenerator&, const param_type&)): Pass
__param._M_q to _M_waiting.
(_M_waiting): Adjust.
* testsuite/26_numerics/random/binomial_distribution/
operators/values.cc: Add tests.
From-SVN: r200341
Diffstat (limited to 'libstdc++-v3/testsuite')
-rw-r--r-- | libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/values.cc | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/values.cc b/libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/values.cc index 89e84ca..4633a06 100644 --- a/libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/values.cc +++ b/libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/values.cc @@ -43,6 +43,17 @@ void test01() std::binomial_distribution<> bd3(10, 0.75); auto bbd3 = std::bind(bd3, eng); testDiscreteDist(bbd3, [](int n) { return binomial_pdf(n, 10, 0.75); } ); + + // libstdc++/57674 + std::binomial_distribution<> bd4(1, 0.8); + const std::binomial_distribution<>::param_type pm4(1, 0.3); + auto bbd4 = std::bind(bd4, eng, pm4); + testDiscreteDist(bbd4, [](int n) { return binomial_pdf(n, 1, 0.3); } ); + + std::binomial_distribution<> bd5(100, 0.3); + const std::binomial_distribution<>::param_type pm5(100, 0.8); + auto bbd5 = std::bind(bd5, eng, pm5); + testDiscreteDist(bbd5, [](int n) { return binomial_pdf(n, 100, 0.8); } ); } int main() |