You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Otmar Ertl (JIRA)" <ji...@apache.org> on 2015/08/09 17:47:45 UTC
[jira] [Updated] (MATH-1220) More efficient sample() method for
ZipfDistribution
[ https://issues.apache.org/jira/browse/MATH-1220?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Otmar Ertl updated MATH-1220:
-----------------------------
Attachment: patch_v3
I have revised the patch that makes use of rejection-inversion sampling. I have improved documentation and inlined a proof that shows that the generated random numbers are really Zipf distributed. I think the new approach should be more comprehensible now. I would be grateful for a review.
> More efficient sample() method for ZipfDistribution
> ---------------------------------------------------
>
> Key: MATH-1220
> URL: https://issues.apache.org/jira/browse/MATH-1220
> Project: Commons Math
> Issue Type: Improvement
> Reporter: Otmar Ertl
> Fix For: 4.0, 3.6
>
> Attachments: Zipf Rejection Inversion Sampling Notes.pdf, patch_v1, patch_v2, patch_v3
>
>
> Currently, sampling from a ZipfDistribution is very inefficient. Random values are generated by inverting the CDF. However, the current implementation uses O(N) power function evaluations to calculate the CDF for some point. (Here N is the number of points of the Zipf distribution.) I propose to use rejection sampling instead, which allows the generation of a single random value in constant time.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)