commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Phil Steitz (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (MATH-1056) Small error in PoissonDistribution.nextPoisson() algorithm
Date Sat, 09 Nov 2013 21:38:17 GMT

    [ https://issues.apache.org/jira/browse/MATH-1056?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13818278#comment-13818278
] 

Phil Steitz commented on MATH-1056:
-----------------------------------

I see.  Would slightly complicate the code for I am not sure how much benefit, but might be
worth doing.  Probably best to open a separate ticket for this.

> Small error in PoissonDistribution.nextPoisson() algorithm
> ----------------------------------------------------------
>
>                 Key: MATH-1056
>                 URL: https://issues.apache.org/jira/browse/MATH-1056
>             Project: Commons Math
>          Issue Type: Bug
>    Affects Versions: 3.2
>            Reporter: Sean Owen
>            Priority: Minor
>             Fix For: 3.3
>
>         Attachments: MATH-1056.patch
>
>
> Here's a tiny bug I noticed via static inspection, since it flagged the integer division.
PoissonDistribution.java:325 says:
> {code:java}
> final double a1 = FastMath.sqrt(FastMath.PI * twolpd) * FastMath.exp(1 / 8 * lambda);
> {code}
> The "1 / 8 * lambda" is evidently incorrect, since this will always evaluate to 0. I
rechecked the original algorithm (http://luc.devroye.org/devroye-poisson.pdf) and it should
instead be:
> {code:java}
> final double a1 = FastMath.sqrt(FastMath.PI * twolpd) * FastMath.exp(1 / (8 * lambda));
> {code}
> (lambda is a double so there is no int division issue.) This matches a later expression.
> I'm not sure how to evaluate the effect of the bug. Better to be correct of course; it
may never have made much practical difference.



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Mime
View raw message