[
https://issues.apache.org/jira/browse/RNG-100?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Alex D Herbert resolved RNG-100.
--------------------------------
Resolution: Implemented
In master.
> GuideTableDiscreteSampler
> -------------------------
>
> Key: RNG-100
> URL: https://issues.apache.org/jira/browse/RNG-100
> Project: Commons RNG
> Issue Type: New Feature
> Components: sampling
> Affects Versions: 1.3
> Reporter: Alex D Herbert
> Assignee: Alex D Herbert
> Priority: Minor
> Fix For: 1.3
>
> Time Spent: 20m
> Remaining Estimate: 0h
>
> From
> {noformat}
> Devroye, Luc (1986). Non-Uniform Random Variate Generation.
> New York: Springer-Verlag. Chapter 3.2.4 "The method of guide tables" p. 96.
> {noformat}
> [Chapter 3|http://luc.devroye.org/chapter_three.pdf] from the author's
> website.
> The method divides the range for the cumulative probability table of {{K}}
> values into {{alpha * K}} equispaced intervals. Each interval i contains the
> maximum sample value where the cumulative probability is less than i /
> table.length.
> Given a uniform deviate u in the range [0, 1] the guide can be obtained using
> floor(u * table.length). This guide value is the start point for search of
> the cumulative probability table. The number of comparisons of the uniform
> deviate within the cumulative probability table is upper bounded by 2 (see
> Devroye, p97) making the search very efficient.
> Create a sampler using the Guide table method:
> {code:java}
> package org.apache.commons.rng.sampling.distribution;
> public class GuideTableDiscreteSampler implements DiscreteSampler {
> public GuideTableDiscreteSampler(UniformRandomProvider rng,
> double[] probabilities,
> double alpha) {
> // Validate probabilities sum to >0
> // Construct cumulative probability table
> // Construct guide table
> }
> @Override
> public int sample() {
> // Look-up sample value in guide table
> // Search cumulative probability table
> }
> }
> {code}
> The alpha value is not required. However large alpha increase the size of the
> guide table and improve performance at the cost of storage.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)