commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mikkel Meyer Andersen (JIRA)" <j...@apache.org>
Subject [jira] Issue Comment Edited: (MATH-385) Characteristic (support, mean, variance, ...) on Distributions
Date Sun, 26 Dec 2010 19:51:46 GMT

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

Mikkel Meyer Andersen edited comment on MATH-385 at 12/26/10 2:51 PM:
----------------------------------------------------------------------

I could convert pow(x, 2) to x*x, but the what about the following, then:
{noformat}
...$ grep -iHR "pow(.*, 2)" .
./WeibullDistributionImpl.java:        return FastMath.pow(scale, 2) * 
./WeibullDistributionImpl.java:            FastMath.pow(mean, 2);
./ExponentialDistributionImpl.java:        return FastMath.pow(getMean(), 2);
./NormalDistributionImpl.java:        return FastMath.pow(getStandardDeviation(), 2);
./GammaDistributionImpl.java:        return getAlpha() * FastMath.pow(getBeta(), 2);
./ZipfDistributionImpl.java:        return (Hs2 / Hs) - (FastMath.pow(Hs1, 2) / FastMath.pow(Hs,
2));
./FDistributionImpl.java:            return ( 2 * FastMath.pow(denominatorDF, 2) * (numeratorDF
+ denominatorDF - 2) )
./FDistributionImpl.java:                   / ( (numeratorDF * Math.pow(denominatorDF - 2,
2) * (denominatorDF - 4)) );
./BetaDistributionImpl.java:        return (alpha * beta) / (FastMath.pow(alphabetasum, 2)
* (alphabetasum + 1));
{noformat}

      was (Author: mikl):
    I could convert pow(x, 2) to x*x, but the what about the following, then:
{{...$ grep -iHR "pow(.*, 2)" .
./WeibullDistributionImpl.java:        return FastMath.pow(scale, 2) * 
./WeibullDistributionImpl.java:            FastMath.pow(mean, 2);
./ExponentialDistributionImpl.java:        return FastMath.pow(getMean(), 2);
./NormalDistributionImpl.java:        return FastMath.pow(getStandardDeviation(), 2);
./GammaDistributionImpl.java:        return getAlpha() * FastMath.pow(getBeta(), 2);
./ZipfDistributionImpl.java:        return (Hs2 / Hs) - (FastMath.pow(Hs1, 2) / FastMath.pow(Hs,
2));
./FDistributionImpl.java:            return ( 2 * FastMath.pow(denominatorDF, 2) * (numeratorDF
+ denominatorDF - 2) )
./FDistributionImpl.java:                   / ( (numeratorDF * Math.pow(denominatorDF - 2,
2) * (denominatorDF - 4)) );
./BetaDistributionImpl.java:        return (alpha * beta) / (FastMath.pow(alphabetasum, 2)
* (alphabetasum + 1));}}
  
> 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
>            Assignee: Mikkel Meyer Andersen
>             Fix For: 2.2
>
>         Attachments: MATH385-PATCH1, MATH385-PATCH2
>
>   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.


Mime
View raw message