On 3/15/11 1:36 AM, Thomas Anderson wrote: > When using NormalDistributionImpl calss, I encounter the error throwing > message > > org.apache.commons.math.ConvergenceException: maximum number of > iterations reached > at > org.apache.commons.math.special.Gamma.regularizedGammaP(Gamma.java:176) > at org.apache.commons.math.special.Erf.erf(Erf.java:52) > at > org.apache.commons.math.distribution.NormalDistributionImpl.cumulativeProbability(NormalDistributionImpl.java:105) > at mypackage.Myclass.add(Myclass.java:109) > at mypackage.Myclass.$Msger.call(Myclass.java:69) > at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) > at java.util.concurrent.FutureTask.run(FutureTask.java:138) > at > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98) > at > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206) > at > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) > at java.lang.Thread.run(Thread.java:662) > > The value provided in cumulativeProbability is a double of current > time subtracting previous timestamped e.g. t_now - t_prev > > What might cause this issue or how to fix it?
What version of Commons Math are you running? From the line numbers in the stack trace, it looks like you may be using 1.1, which is ancient and had a bug that led to this error when cumulative probabilities were evaluated for extreme values. If possible, you should upgrade to the latest version of Commons Math, which is version 2.2. If that is not possible, as a workaround, most likely what is going on is you are asking for a cumulative probability that is not distinguishable from either 0 or 1. Check to make sure that the actual parameter to the cumulative probability function is not less than 40 standard deviations below the mean (in which case the cum prob should be 0) or greater than 40 std devs above the mean (in which case it should be 1). Phil > Thanks. > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
