This is an automated email from the ASF dual-hosted git repository. aherbert pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-statistics.git
commit 23ace290a7ff6abf265e660b5f17ddf25b1f55c3 Author: aherbert <aherb...@apache.org> AuthorDate: Tue Sep 14 11:58:25 2021 +0100 Use a StableSampler for the Cauchy distribution --- .../commons/statistics/distribution/CauchyDistribution.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/CauchyDistribution.java b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/CauchyDistribution.java index 9dd0d27..d189025 100644 --- a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/CauchyDistribution.java +++ b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/CauchyDistribution.java @@ -16,6 +16,9 @@ */ package org.apache.commons.statistics.distribution; +import org.apache.commons.rng.UniformRandomProvider; +import org.apache.commons.rng.sampling.distribution.StableSampler; + /** * Implementation of the <a href="http://en.wikipedia.org/wiki/Cauchy_distribution">Cauchy distribution</a>. */ @@ -173,4 +176,12 @@ public class CauchyDistribution extends AbstractContinuousDistribution { public boolean isSupportConnected() { return true; } + + /** {@inheritDoc} */ + @Override + public ContinuousDistribution.Sampler createSampler(final UniformRandomProvider rng) { + // Cauchy distribution = + // Stable distribution with alpha=1, beta=0, gamma=scale, delta=location (median) + return StableSampler.of(rng, 1, 0, getScale(), getMedian())::sample; + } }