commons-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From er...@apache.org
Subject [2/3] commons-rng git commit: Removed duplicate code.
Date Wed, 17 Aug 2016 16:13:31 GMT
Removed duplicate code.


Project: http://git-wip-us.apache.org/repos/asf/commons-rng/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-rng/commit/763ba24f
Tree: http://git-wip-us.apache.org/repos/asf/commons-rng/tree/763ba24f
Diff: http://git-wip-us.apache.org/repos/asf/commons-rng/diff/763ba24f

Branch: refs/heads/master
Commit: 763ba24f1f6e1807a532b7b588df4834ccc51f8e
Parents: 6ebc71d
Author: Gilles <erans@apache.org>
Authored: Wed Aug 17 20:11:03 2016 +0200
Committer: Gilles <erans@apache.org>
Committed: Wed Aug 17 20:11:03 2016 +0200

----------------------------------------------------------------------
 .../rng/internal/source32/Well19937c.java       | 39 +++-----------------
 1 file changed, 5 insertions(+), 34 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-rng/blob/763ba24f/src/main/java/org/apache/commons/rng/internal/source32/Well19937c.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/rng/internal/source32/Well19937c.java b/src/main/java/org/apache/commons/rng/internal/source32/Well19937c.java
index 8acbb81..48f05c3 100644
--- a/src/main/java/org/apache/commons/rng/internal/source32/Well19937c.java
+++ b/src/main/java/org/apache/commons/rng/internal/source32/Well19937c.java
@@ -32,52 +32,23 @@ package org.apache.commons.rng.internal.source32;
  * @see <a href="http://www.iro.umontreal.ca/~panneton/WELLRNG.html">WELL Random number
generator</a>
  * @since 2.2
  */
-public class Well19937c extends AbstractWell {
-    /** Number of bits in the pool. */
-    private static final int K = 19937;
-    /** First parameter of the algorithm. */
-    private static final int M1 = 70;
-    /** Second parameter of the algorithm. */
-    private static final int M2 = 179;
-    /** Third parameter of the algorithm. */
-    private static final int M3 = 449;
-    /** The indirection index table. */
-    private static final IndexTable TABLE = new IndexTable(K, M1, M2, M3);
-
+public class Well19937c extends Well19937a {
     /**
      * Creates a new random number generator.
      *
      * @param seed Initial seed.
      */
     public Well19937c(int[] seed) {
-        super(K, seed);
+        super(seed);
     }
 
     /** {@inheritDoc} */
     @Override
     public int next() {
-        final int indexRm1 = TABLE.getIndexPred(index);
-        final int indexRm2 = TABLE.getIndexPred2(index);
-
-        final int v0 = v[index];
-        final int vM1 = v[TABLE.getIndexM1(index)];
-        final int vM2 = v[TABLE.getIndexM2(index)];
-        final int vM3 = v[TABLE.getIndexM3(index)];
-
-        final int z0 = (0x80000000 & v[indexRm1]) ^ (0x7FFFFFFF & v[indexRm2]);
-        final int z1 = (v0 ^ (v0 << 25)) ^ (vM1 ^ (vM1 >>> 27));
-        final int z2 = (vM2 >>> 9) ^ (vM3 ^ (vM3 >>> 1));
-        final int z3 = z1 ^ z2;
-        int z4 = z0 ^ (z1 ^ (z1 << 9)) ^ (z2 ^ (z2 << 21)) ^ (z3 ^ (z3 >>>
21));
-
-        v[index] = z3;
-        v[indexRm1] = z4;
-        v[indexRm2] &= 0x80000000;
-        index = indexRm1;
+        int z4 = super.next();
 
-        // add Matsumoto-Kurita tempering
-        // to get a maximally-equidistributed generator
-        z4 ^= (z4 <<  7) & 0xe46e1700;
+        // Matsumoto-Kurita tempering to get a maximally equidistributed generator.
+        z4 ^= (z4 << 7) & 0xe46e1700;
         z4 ^= (z4 << 15) & 0x9b868000;
 
         return z4;


Mime
View raw message