commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sébastien Brisard (Commented) (JIRA) <>
Subject [jira] [Commented] (MATH-699) inverseCumulativeDistribution fails with cumulative distribution having a plateau
Date Tue, 08 Nov 2011 06:54:51 GMT


Sébastien Brisard commented on MATH-699:

I agree with you: however careful we are, the default implementation will never be perfect,
and it should be clearly stated in the javadoc. I see (but haven't dug into it yet) there
is an abstract test for continuous distributions. I'll try and make sure that most possible
cases of failure of {{inverseCumulativeProbability}} are tested in this abstract framework,
so that users could be *strongly* encouraged to implement this test for their very specific

I do think we can widen a little bit the scope of the default implementation. I actually worked
towards eliminating the bracketing step, but you convinced me that it should be the other
way round: can we eliminate the domainLower/upperBound methods (which I agree are very efficient,
but a little bit of a pain in the neck...).

Here is an idea I'm going to check (keeping in mind the accuracy issues you've already pointed
* for distributions with bounded support: maybe the bounds (possibly shifted if the bounds
are not inclusive) of the support itself could be used as an initial bracketting range.
* for distributions with unbounded support: start from *any* (? or a better guess? average
value?) point in the support, and do bracketting. However, I do agree with Christian, we should
use geometric progressions in this case, instead of arithmetic progressions. This would probably
lead to a very large interval, but it would provide us an interval more quickly, and the solver
itself would probably be quite good at narrowing it very quickly. I can try some monitoring
on this issue.

As for plateaus, I think what I'm currently working on is not too inefficient. I'm sure it's
not *the* answer (which is, anyway, 42 :)), but I'm struggling to fail this algo... Don't
worry, I'll break it. I think that what I've done entails very little additional cost (maybe
one more evaluation of cumulativeProbability) for distributions *without* plateau, but I need
to check that (we do not want to pay a heavy price for plateaus, since most of our distributions
do not have one, as you rightly pointed out).

I would be grateful for any idea on these topics, and will keep you informed. All the best
for now,
> inverseCumulativeDistribution fails with cumulative distribution having a plateau
> ---------------------------------------------------------------------------------
>                 Key: MATH-699
>                 URL:
>             Project: Commons Math
>          Issue Type: Bug
>    Affects Versions: 3.0
>            Reporter: Sébastien Brisard
>            Assignee: Sébastien Brisard
>            Priority: Minor
>         Attachments:
> This bug report follows MATH-692. The attached unit test fails. As required by the definition
in MATH-692, the lower-bound of the interval on which the cdf is constant should be returned.
This is not so at the moment.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:!default.jspa
For more information on JIRA, see:


View raw message