[
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)