[ 
https://issues.apache.org/jira/browse/NUMBERS-167?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17707651#comment-17707651
 ] 

Alex Herbert commented on NUMBERS-167:
--------------------------------------

{quote}Doesn't it entail that it is quite likely that is much slower and 
potentially less accurate than what is implemented in that other library?
{quote}
It was not clear which is slower. Anyway, the inverse CDF/SF are a place where 
improvements can be made.

The default implementation in Statistics remains the bracketed search using a 
BrentOptimizer. This had to have updates to improve the version from CM to 
tighten the tolerances in the BrentOptimizer and support inversion of 
sub-normal numbers. It may not be very fast, and it often has lower relative 
accuracy than other implementations used to test the function (e.g. in SciPy, 
Matlab, R). The inverse functions are the main place where the relative 
tolerance used in the test suite has to be lowered.

The most obvious improvement is to use a derivative based inversion method to 
guide the search. This is what is performed in the Boost inversion of the 
incomplete Gamma function used for the Gamma distribution (and derived 
Chi-squared distribution). However I have not tested the Boost function to 
check if the method is faster and/or more accurate than what we have.
{quote}There seems to be an issue with the generated API docs ... for code of 
the package-private AbstractContinuousDistribution
{quote}
Yes. I just checked. Any non-public classes do not have generated source pages. 
If you run:
{noformat}
mvn javadoc:javadoc -Dshow=package{noformat}
Then the src link does not error as the source HTML is generated for the 
package-private class. However the class also appears in the main Javadoc pages 
too. I cannot find an option to generate the src pages (desirable) without also 
adding the same classes to the Javadoc pages (which is less desirable).

See 
[https://maven.apache.org/plugins/maven-javadoc-plugin/javadoc-mojo.html#show]

 

> RegularizedGamma.P with precomputed LogGamma value
> --------------------------------------------------
>
>                 Key: NUMBERS-167
>                 URL: https://issues.apache.org/jira/browse/NUMBERS-167
>             Project: Commons Numbers
>          Issue Type: Wish
>          Components: gamma
>            Reporter: Gilles Sadowski
>            Priority: Minor
>             Fix For: 1.2
>
>         Attachments: pr_106.patch
>
>          Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> We have
> {code:java}
> double v = RegularizedGamma.P.value(a, x);
> {code}
> where method {{value}} internally calls {{LogGamma.value(a)}}.
> There is a use-case for
> {code:java}
> double logGammaA = LogGamma.value(a);
> double v = RegularizedGamma.P.value(a, x, logGammaA);
> {code}
> for when the user varies {{x}} but not {{a}}.
> Method name TBD:  Another overload of {{value}} may be confusing (?).



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to