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

Reply via email to