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

Sébastien Brisard edited comment on MATH-753 at 2/25/12 8:19 PM:
-----------------------------------------------------------------

This suits me fine. The only concern I have is that using exp(log( x )) in 
place of x might incur a loss of accuracy. Maybe we should use this 
substitution only when it is necessary (for large values of alpha and beta). 
This would require a little bit of investigation to find the appropriate 
thresholds.
                
      was (Author: celestin):
    This suits me fine. The only concern I have is that using exp(log(x)) in 
place of x might incur a loss of accuracy. Maybe we should use this 
substitution only when it is necessary (for large values of alpha and beta). 
This would require a little bit of investigation to find the appropriate 
thresholds.
                  
> Better implementation for the gamma distribution density function
> -----------------------------------------------------------------
>
>                 Key: MATH-753
>                 URL: https://issues.apache.org/jira/browse/MATH-753
>             Project: Commons Math
>          Issue Type: Improvement
>    Affects Versions: 2.2
>            Reporter: Francesco Strino
>            Priority: Minor
>              Labels: improvement, stability
>             Fix For: 2.2
>
>
> The way the density of the gamma distribution function is estimated can be 
> improved.
> It's much more stable to calculate first the log of the density and then 
> exponentiate, otherwise the function returns NaN for high values of the 
> parameters alpha and beta. 
> It would be sufficient to change the public double density(double x) function 
> at line 204 in the file 
> org.apache.commons.math.distribution.GammaDistributionImpl as follows:
> return Math.exp(Math.log( x )*(alpha-1) - Math.log(beta)*alpha - x/beta - 
> Gamma.logGamma(alpha)); 
> In order to improve performance, log(beta) and Gamma.logGamma(alpha) could 
> also be precomputed and stored during initialization.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


Reply via email to