[
https://issues.apache.org/jira/browse/MATH-414?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12936097#action_12936097
]
Phil Steitz commented on MATH-414:
----------------------------------
I am leaning toward adding top-coding outside of the catch. Based on the
inequality p(Z > t) < exp(-t^2/2) derived in [1] and Double.MIN_VALUE =
2^-1074, I get that tail probabilities are not distinguishable from 0 for |t| >
39, so I propose that we top-code at 40 outside the catch. Appreciate others
checking my arithmetic.
[1] http://www.johndcook.com/normalbounds.pdf
> ConvergenceException in NormalDistributionImpl.cumulativeProbability()
> ----------------------------------------------------------------------
>
> Key: MATH-414
> URL: https://issues.apache.org/jira/browse/MATH-414
> Project: Commons Math
> Issue Type: Bug
> Affects Versions: 2.1
> Environment: Jdk 1.6.
> Reporter: Gustav Ryd
> Priority: Minor
> Fix For: 2.2
>
> Original Estimate: 2h
> Remaining Estimate: 2h
>
> I get a ConvergenceException in
> NormalDistributionImpl.cumulativeProbability() for very large/small
> parameters including Infinity, -Infinity.
> For instance in the following code:
> @Test
> public void testCumulative() {
> final NormalDistribution nd = new NormalDistributionImpl();
> for (int i = 0; i < 500; i++) {
> final double val = Math.exp(i);
> try {
> System.out.println("val = " + val + "
> cumulative = " + nd.cumulativeProbability(val));
> } catch (MathException e) {
> e.printStackTrace();
> fail();
> }
> }
> }
> In version 2.0, I get no exception.
> My suggestion is to change in the implementation of
> cumulativeProbability(double) to catch all ConvergenceException (and return
> for very large and very small values), not just
> MaxIterationsExceededException.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.