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-rng.git

commit f092264615c5d81b6ff7f1a01ec6b64bb80eeb9e
Author: aherbert <[email protected]>
AuthorDate: Tue Aug 24 13:57:17 2021 +0100

    Update ZigguaratSampler concave epsilon for the exponential.
    
    This should be equal to approximately 9.2%. The previous value was
    approximately 5.6% resulting in fast acceptance too often for overhangs.
---
 .../jmh/sampling/distribution/ZigguratSamplerPerformance.java     | 8 ++++----
 .../apache/commons/rng/sampling/distribution/ZigguratSampler.java | 4 ++--
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git 
a/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/sampling/distribution/ZigguratSamplerPerformance.java
 
b/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/sampling/distribution/ZigguratSamplerPerformance.java
index da961d5..a0812c8 100644
--- 
a/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/sampling/distribution/ZigguratSamplerPerformance.java
+++ 
b/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/sampling/distribution/ZigguratSamplerPerformance.java
@@ -2166,8 +2166,8 @@ public class ZigguratSamplerPerformance {
     static class ModifiedZigguratExponentialSampler implements 
ContinuousSampler {
         /** Maximum i value for early exit. */
         protected static final int I_MAX = 252;
-        /** Maximum distance value for early exit. */
-        protected static final long IE_MAX = 513303011048449570L;
+        /** Maximum distance value for early exit. Equal to approximately 
0.0926 scaled by 2^63. */
+        protected static final long IE_MAX = 853965788476313646L;
         /** Beginning of tail. */
         protected static final double X_0 = 7.569274694148063;
 
@@ -2858,8 +2858,8 @@ public class ZigguratSamplerPerformance {
     static class ModifiedZigguratExponentialSampler512 implements 
ContinuousSampler {
         /** Maximum i value for early exit. */
         protected static final int I_MAX = 508;
-        /** Maximum distance value for early exit. */
-        protected static final long IE_MAX = 507874389497522840L;
+        /** Maximum distance value for early exit. Equal to approximately 
0.0919 scaled by 2^63. */
+        protected static final long IE_MAX = 847415790149374212L;
         /** Beginning of tail. */
         protected static final double X_0 = 8.362025281328359;
 
diff --git 
a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/ZigguratSampler.java
 
b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/ZigguratSampler.java
index 641ab79..7885360 100644
--- 
a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/ZigguratSampler.java
+++ 
b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/ZigguratSampler.java
@@ -121,8 +121,8 @@ public abstract class ZigguratSampler implements 
SharedStateContinuousSampler {
     public static class Exponential extends ZigguratSampler {
         /** Maximum i value for early exit. */
         private static final int I_MAX = 252;
-        /** Maximum distance value for early exit. */
-        private static final long IE_MAX = 513303011048449570L;
+        /** Maximum distance value for early exit. Equal to approximately 
0.0926 scaled by 2^63. */
+        private static final long IE_MAX = 853965788476313646L;
         /** Beginning of tail. */
         private static final double X_0 = 7.569274694148063;
 

Reply via email to