You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Phil Steitz (JIRA)" <ji...@apache.org> on 2010/07/15 00:21:52 UTC

[jira] Commented: (MATH-385) Characteristic (support, mean, variance, ...) on Distributions

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

Phil Steitz commented on MATH-385:
----------------------------------

+1 for adding all of these to the abstract classes.  While not needed for current implementations, it might be good to add isSupportConnected().  Will need to carefully doc things like the fact that infinite values would never be "included".  Also, where exactly would you expect to see NaN?

In many (most?) cases, the cost of computing the parameters in constructors will be negligible, so I would favor initialization in the constructors unless there is significant computation to be done.   One thing we might want to consider for 3.0 is to deprecate the parameter setters, making the distribution classes immutable, so recomputing, etc. would become unnecessary.

> Characteristic (support, mean, variance, ...) on Distributions
> --------------------------------------------------------------
>
>                 Key: MATH-385
>                 URL: https://issues.apache.org/jira/browse/MATH-385
>             Project: Commons Math
>          Issue Type: New Feature
>            Reporter: Mikkel Meyer Andersen
>   Original Estimate: 5h
>  Remaining Estimate: 5h
>
> I wish that the Distributions could contain some characteristics. For example support, mean, and variance.
> Support:
> AbstractContinuousDistribution and AbstractIntegerDistribution should have double getSupport{Lower, Upper}Bound() and int getSupport{Lower, Upper}Bound(), respectively. Also methods a la boolean isSupport{Lower, Upper}BoundInclusive() on AbstractContinuousDistribution should reflect if the support is open of closed. In practise the implemented distributions are easy since the support for all continuous distributions are real intervals (connected sets), and the support for all the discrete distributions are connected integer sets. This means that the lower and upper bound (together with isSupport{Lower, Upper}BoundInclusive() on AbstractContinuousDistribution because it is not needed on the discrete distributions because of their nature) are sufficient for determine the support.
> Mean and variance:
> double get{Mean, Variance}() should be on AbstractDistribution.
> With such characteristic an invalidateParameters-method might come in handy because they often depend on the parameters. The characteristics should not be calculated before the first time they are get'ted, and when calculated, they should be saved for later use.  When parameters change, an invalidateParameters-method should be called to force the characteristics to be recalculated.
> Values such as Double.POSITIVE_INFINITY, Double.NEGATIVE_INFINITY, and Double.NaN should be used where appropriate.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.