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
Cr-Mirrored-From: sso://chromium.googlesource.com/_direct/external/github.com/llvm/llvm-project
Cr-Mirrored-Commit: a58bdf9f69abf7e7173f6edc583f907bfdb1b4ba
diff --git a/include/random b/include/random
index 9073a52..89664a6 100644
--- a/include/random
+++ b/include/random
@@ -4673,7 +4673,7 @@
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];