[
https://issues.apache.org/jira/browse/MATH-585?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13045058#comment-13045058
]
Darren Wilkinson commented on MATH-585:
---------------------------------------
It is not urgent in the sense that I can use Parallel COLT! :-/ But it is quite
a big deal for anyone wanting to use Commons Math and doing serious Monte Carlo
work. Not only is the gamma distribution itself very important, but the gamma
generator is used as the basis for simulating variates from many other
distributions (including inverse gamma, chi-square, inverse chi-square, beta,
Dirichlet, ...), so a slow gamma generator has lots of knock-on effects. It is
certainly the next most important non-uniform generator to provide after
Gaussian. It is not trivial to implement well, so I recommend copying or
porting another implementation if possible, though I'm not an expert on open
source software licenses so I don't know how practical that is. The GSL and R
are GNU projects which have good C implementations, which I think are based on
slightly better algorithms than the Ahrens and Dieter algorithm you mention
above.
> Very slow generation of gamma random variates
> ---------------------------------------------
>
> Key: MATH-585
> URL: https://issues.apache.org/jira/browse/MATH-585
> Project: Commons Math
> Issue Type: Improvement
> Affects Versions: 2.2, 3.0
> Environment: All
> Reporter: Darren Wilkinson
> Labels: Gamma, Random
> Original Estimate: 6h
> Remaining Estimate: 6h
>
> The current implementation of gamma random variate generation works, but uses
> an inversion method. This is well-known to be a bad idea. Usually a carefully
> constructed rejection procedure is used. To give an idea of the magnitude of
> the problem, the Gamma variate generation in Parallel COLT is roughly 50
> times faster than in Commons Math.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira