[
https://issues.apache.org/jira/browse/MATH-1220?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14520123#comment-14520123
]
Otmar Ertl commented on MATH-1220:
----------------------------------
Caching generalizedHarmonic(numberOfElements, exponent) makes sense.
The inverse cumulative probability would be more efficient by simply summing up
the probabilities of points until the searched probability is met.
Furthermore, I would allow the exponent to be non-negative. Currently, it is
restricted to positive values.
I have developed the method by myself. I do not know if a similar method can be
found in literature. So far, apart from this math library, I have no plans to
publish it somewhere else. I am not sure, if I could bring up the time to write
some paper.
> 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
> Attachments: patch_v1
>
>
> 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)