summaryrefslogtreecommitdiffstats
path: root/libcxx/include
diff options
context:
space:
mode:
authorMarshall Clow <mclow.lists@gmail.com>2018-01-16 14:54:36 +0000
committerMarshall Clow <mclow.lists@gmail.com>2018-01-16 14:54:36 +0000
commita58bdf9f69abf7e7173f6edc583f907bfdb1b4ba (patch)
treebba4e00f03e992541fb1d15b4f144fd3037b9d14 /libcxx/include
parent0b464e4f0e725162322db7f082e5372feeaabe1e (diff)
downloadbcm5719-llvm-a58bdf9f69abf7e7173f6edc583f907bfdb1b4ba.tar.gz
bcm5719-llvm-a58bdf9f69abf7e7173f6edc583f907bfdb1b4ba.zip
Change an internal table of constants for the poisson distribution from
type 'result_type' to 'double'. The only thing that we ever do with these numbers is to promote them to 'double' and use them in a division. For small result_types, the values were getting truncated, skewing the results. Thanks to James Nagurne for the suggestion. llvm-svn: 322556
Diffstat (limited to 'libcxx/include')
-rw-r--r--libcxx/include/random2
1 files changed, 1 insertions, 1 deletions
diff --git a/libcxx/include/random b/libcxx/include/random
index 9073a5285b1..89664a6ca33 100644
--- a/libcxx/include/random
+++ b/libcxx/include/random
@@ -4673,7 +4673,7 @@ poisson_distribution<_IntType>::operator()(_URNG& __urng, const param_type& __pr
double __py;
if (__x < 10)
{
- const result_type __fac[] = {1, 1, 2, 6, 24, 120, 720, 5040,
+ const double __fac[] = {1, 1, 2, 6, 24, 120, 720, 5040,
40320, 362880};
__px = -__pr.__mean_;
__py = _VSTD::pow(__pr.__mean_, (double)__x) / __fac[__x];
OpenPOWER on IntegriCloud