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
The following commit(s) were added to refs/heads/master by this push: new a968c2a Do not compute x = hz * W[iz] unless required. a968c2a is described below commit a968c2ad61676332e257f53f08f93660ccbb5670 Author: Alex Herbert <aherb...@apache.org> AuthorDate: Sun Jul 4 21:26:50 2021 +0100 Do not compute x = hz * W[iz] unless required. --- .../sampling/distribution/ZigguratNormalizedGaussianSampler.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/ZigguratNormalizedGaussianSampler.java b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/ZigguratNormalizedGaussianSampler.java index 7b62be8..ce39773 100644 --- a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/ZigguratNormalizedGaussianSampler.java +++ b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/ZigguratNormalizedGaussianSampler.java @@ -127,13 +127,11 @@ public class ZigguratNormalizedGaussianSampler */ private double fix(long hz, int iz) { - double x; - double y; - - x = hz * W[iz]; if (iz == 0) { // Base strip. // This branch is called about 5.7624515E-4 times per sample. + double y; + double x; do { y = -Math.log(rng.nextDouble()); x = -Math.log(rng.nextDouble()) * ONE_OVER_R; @@ -144,6 +142,7 @@ public class ZigguratNormalizedGaussianSampler } // Wedge of other strips. // This branch is called about 0.027323 times per sample. + final double x = hz * W[iz]; if (F[iz] + rng.nextDouble() * (F[iz - 1] - F[iz]) < pdf(x)) { return x; }