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;
+    }
 }

Reply via email to