[ 
https://issues.apache.org/jira/browse/STATISTICS-2?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Gilles resolved STATISTICS-2.
-----------------------------
    Resolution: Done

No "sub-packages" (referred to in the above description) were created, in order 
to avoid leaking "internal" (package-private) {{DistributionException}} to the 
public API.


> Migrate one-dimensional statistical distributions from "Commons Math"
> ---------------------------------------------------------------------
>
>                 Key: STATISTICS-2
>                 URL: https://issues.apache.org/jira/browse/STATISTICS-2
>             Project: Apache Commons Statistics
>          Issue Type: Wish
>          Components: distribution
>            Reporter: Gilles
>            Priority: Minor
>              Labels: api, dependency, design, interface
>
> I propose to migrate codes currently in 
> {{org.apache.commons.math4.distribution}} to a 
> "commons-statistics-distribution" module.
> Only the "one-dimensional" distributions are concerned (to avoid a dependency 
> on the {{org.apache.commons.math4.linear}} package).
> {{EmpiricalDistribution}} and {{EnumeratedDistribution}} are also excluded 
> from the move (about the latter see also RNG-47).
> Adaptation:
>  * Create sub-packages for
>  ** discrete distributions
>  ** continuous distributions
>  * Make custom exceptions (similar to pending work in "Commons Numbers": 
> NUMBERS-40).
> Issue:
>  * Method
> {code:java}
> double inverseCumulativeProbability(double p){code}
> depends on a "solver" defined in 
> {{org.apache.commons.math4.analysis.solvers}} package.
>  A solution would be to copy the necessary functionality ({{BrentSolver}}) as 
> an "internal" utility.
>  Another would be to provide an API for "externalizing" the functionality:
> {code:java}
> double inverseCumulativeProbability(double p, RootSolver p){code}
> were {{RootSolver}} would an interface defined in "Commons Statistics". Since 
> the solver is not always used for computing the requested value, the latter 
> solution would make the API more "self-documenting". In addition to avoiding 
> code duplication, it also lets the {{RootSolver}} provider deal with the 
> meaning of any input parameter (a.o. the "tolerance") and, in effect, gives 
> the user entire control on the solver.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to