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

Phil Steitz commented on MATH-414:
----------------------------------

The difference between 2.0 and 2.1 is due to the changes in ContinuedFraction 
included in the fix for MATH-282.  For very large values, continued fractions 
are diverging to NaN. The suggested fix will work, but at this point, I wonder 
if we should just move the top-coding out of the catch - i.e., test the 
arguments and return 0 or 1 for extreme values without attempting the 
approximation.

> 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.

Reply via email to