diff options
author | Marshall Clow <mclow.lists@gmail.com> | 2018-01-16 14:54:36 +0000 |
---|---|---|
committer | Marshall Clow <mclow.lists@gmail.com> | 2018-01-16 14:54:36 +0000 |
commit | a58bdf9f69abf7e7173f6edc583f907bfdb1b4ba (patch) | |
tree | bba4e00f03e992541fb1d15b4f144fd3037b9d14 /libcxx/include | |
parent | 0b464e4f0e725162322db7f082e5372feeaabe1e (diff) | |
download | bcm5719-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/random | 2 |
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]; |