You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by lu...@apache.org on 2016/01/17 11:42:07 UTC

[18/22] [math] Reverting commit ffae3bdbb6740e336a223a82a3dd545c24cde7b5 as per Gilles request.

Reverting commit ffae3bdbb6740e336a223a82a3dd545c24cde7b5 as per Gilles request.

The work on revamping the random packages is perfoemd in the random-ravamp branch.


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

Branch: refs/heads/master
Commit: df46ed5edde4aea856cb16b8bc4ab791fef206ef
Parents: 7c31eb6
Author: Luc Maisonobe <lu...@apache.org>
Authored: Sun Jan 17 11:35:25 2016 +0100
Committer: Luc Maisonobe <lu...@apache.org>
Committed: Sun Jan 17 11:40:27 2016 +0100

----------------------------------------------------------------------
 .../commons/math4/random/AbstractWell.java      | 10 +++++----
 .../apache/commons/math4/random/Well1024a.java  | 22 ++++++++++----------
 .../apache/commons/math4/random/Well19937a.java |  6 ++++--
 .../apache/commons/math4/random/Well19937c.java |  6 ++++--
 .../apache/commons/math4/random/Well44497a.java |  6 ++++--
 .../apache/commons/math4/random/Well44497b.java |  6 ++++--
 .../apache/commons/math4/random/Well512a.java   |  6 ++++--
 .../commons/math4/random/Well1024aTest.java     |  2 +-
 .../commons/math4/random/Well19937aTest.java    |  2 +-
 .../commons/math4/random/Well19937cTest.java    |  2 +-
 .../commons/math4/random/Well44497aTest.java    |  2 +-
 .../commons/math4/random/Well44497bTest.java    |  2 +-
 .../commons/math4/random/Well512aTest.java      |  2 +-
 13 files changed, 43 insertions(+), 31 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-math/blob/df46ed5e/src/main/java/org/apache/commons/math4/random/AbstractWell.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/math4/random/AbstractWell.java b/src/main/java/org/apache/commons/math4/random/AbstractWell.java
index da222fd..7251bcd 100644
--- a/src/main/java/org/apache/commons/math4/random/AbstractWell.java
+++ b/src/main/java/org/apache/commons/math4/random/AbstractWell.java
@@ -34,12 +34,10 @@ import org.apache.commons.math4.util.FastMath;
  * @see <a href="http://www.iro.umontreal.ca/~panneton/WELLRNG.html">WELL Random number generator</a>
  * @since 2.2
  */
-public abstract class AbstractWell
-    extends BaseRandomGenerator
-    implements Serializable {
+public abstract class AbstractWell extends BitsStreamGenerator implements Serializable {
 
     /** Serializable version identifier. */
-    private static final long serialVersionUID = 20150228L;
+    private static final long serialVersionUID = 20150223L;
 
     /** Current index in the bytes pool. */
     protected int index;
@@ -135,6 +133,10 @@ public abstract class AbstractWell
         setSeed(new int[] { (int) (seed >>> 32), (int) (seed & 0xffffffffl) });
     }
 
+    /** {@inheritDoc} */
+    @Override
+    protected abstract int next(final int bits);
+
     /** Calculate the number of 32-bits blocks.
      * @param k number of bits in the pool (not necessarily a multiple of 32)
      * @return the number of 32-bits blocks

http://git-wip-us.apache.org/repos/asf/commons-math/blob/df46ed5e/src/main/java/org/apache/commons/math4/random/Well1024a.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/math4/random/Well1024a.java b/src/main/java/org/apache/commons/math4/random/Well1024a.java
index ff1de07..39153f2 100644
--- a/src/main/java/org/apache/commons/math4/random/Well1024a.java
+++ b/src/main/java/org/apache/commons/math4/random/Well1024a.java
@@ -16,18 +16,15 @@
  */
 package org.apache.commons.math4.random;
 
-/**
- * This class implements the WELL1024a pseudo-random number generator
+/** This class implements the WELL1024a pseudo-random number generator
  * from Fran&ccedil;ois Panneton, Pierre L'Ecuyer and Makoto Matsumoto.
- *
  * <p>
  * This generator is described in a paper by Fran&ccedil;ois Panneton,
- * Pierre L'Ecuyer and Makoto Matsumoto
- * <a href="http://www.iro.umontreal.ca/~lecuyer/myftp/papers/wellrng.pdf">
- * Improved Long-Period Generators Based on Linear Recurrences Modulo 2</a>
- * ACM Transactions on Mathematical Software, 32, 1 (2006). The errata for the paper
- * are in <a href="http://www.iro.umontreal.ca/~lecuyer/myftp/papers/wellrng-errata.txt">wellrng-errata.txt</a>.
- * </p>
+ * Pierre L'Ecuyer and Makoto Matsumoto <a
+ * href="http://www.iro.umontreal.ca/~lecuyer/myftp/papers/wellrng.pdf">Improved
+ * Long-Period Generators Based on Linear Recurrences Modulo 2</a> ACM
+ * Transactions on Mathematical Software, 32, 1 (2006). The errata for the paper
+ * are in <a href="http://www.iro.umontreal.ca/~lecuyer/myftp/papers/wellrng-errata.txt">wellrng-errata.txt</a>.</p>
  *
  * @see <a href="http://www.iro.umontreal.ca/~panneton/WELLRNG.html">WELL Random number generator</a>
  * @since 2.2
@@ -84,7 +81,8 @@ public class Well1024a extends AbstractWell {
 
     /** {@inheritDoc} */
     @Override
-    public int nextInt() {
+    protected int next(final int bits) {
+
         final int indexRm1 = TABLE.getIndexPred(index);
 
         final int v0       = v[index];
@@ -102,6 +100,8 @@ public class Well1024a extends AbstractWell {
         v[indexRm1]  = z4;
         index        = indexRm1;
 
-        return z4;
+        return z4 >>> (32 - bits);
+
     }
+
 }

http://git-wip-us.apache.org/repos/asf/commons-math/blob/df46ed5e/src/main/java/org/apache/commons/math4/random/Well19937a.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/math4/random/Well19937a.java b/src/main/java/org/apache/commons/math4/random/Well19937a.java
index d4b877a..856a42d 100644
--- a/src/main/java/org/apache/commons/math4/random/Well19937a.java
+++ b/src/main/java/org/apache/commons/math4/random/Well19937a.java
@@ -82,7 +82,7 @@ public class Well19937a extends AbstractWell {
 
     /** {@inheritDoc} */
     @Override
-    public int nextInt() {
+    protected int next(final int bits) {
 
         final int indexRm1 = TABLE.getIndexPred(index);
         final int indexRm2 = TABLE.getIndexPred2(index);
@@ -103,6 +103,8 @@ public class Well19937a extends AbstractWell {
         v[indexRm2] &= 0x80000000;
         index        = indexRm1;
 
-        return z4;
+        return z4 >>> (32 - bits);
+
     }
+
 }

http://git-wip-us.apache.org/repos/asf/commons-math/blob/df46ed5e/src/main/java/org/apache/commons/math4/random/Well19937c.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/math4/random/Well19937c.java b/src/main/java/org/apache/commons/math4/random/Well19937c.java
index c15350d..1ff77c7 100644
--- a/src/main/java/org/apache/commons/math4/random/Well19937c.java
+++ b/src/main/java/org/apache/commons/math4/random/Well19937c.java
@@ -82,7 +82,7 @@ public class Well19937c extends AbstractWell {
 
     /** {@inheritDoc} */
     @Override
-    public int nextInt() {
+    protected int next(final int bits) {
 
         final int indexRm1 = TABLE.getIndexPred(index);
         final int indexRm2 = TABLE.getIndexPred2(index);
@@ -108,6 +108,8 @@ public class Well19937c extends AbstractWell {
         z4 ^= (z4 <<  7) & 0xe46e1700;
         z4 ^= (z4 << 15) & 0x9b868000;
 
-        return z4;
+        return z4 >>> (32 - bits);
+
     }
+
 }

http://git-wip-us.apache.org/repos/asf/commons-math/blob/df46ed5e/src/main/java/org/apache/commons/math4/random/Well44497a.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/math4/random/Well44497a.java b/src/main/java/org/apache/commons/math4/random/Well44497a.java
index 667d458..1c7765f 100644
--- a/src/main/java/org/apache/commons/math4/random/Well44497a.java
+++ b/src/main/java/org/apache/commons/math4/random/Well44497a.java
@@ -81,7 +81,7 @@ public class Well44497a extends AbstractWell {
 
     /** {@inheritDoc} */
     @Override
-    public int nextInt() {
+    protected int next(final int bits) {
 
         final int indexRm1 = TABLE.getIndexPred(index);
         final int indexRm2 = TABLE.getIndexPred2(index);
@@ -105,6 +105,8 @@ public class Well44497a extends AbstractWell {
         v[indexRm2] &= 0xFFFF8000;
         index        = indexRm1;
 
-        return z4;
+        return z4 >>> (32 - bits);
+
     }
+
 }

http://git-wip-us.apache.org/repos/asf/commons-math/blob/df46ed5e/src/main/java/org/apache/commons/math4/random/Well44497b.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/math4/random/Well44497b.java b/src/main/java/org/apache/commons/math4/random/Well44497b.java
index 91c506f..551da47 100644
--- a/src/main/java/org/apache/commons/math4/random/Well44497b.java
+++ b/src/main/java/org/apache/commons/math4/random/Well44497b.java
@@ -81,7 +81,7 @@ public class Well44497b extends AbstractWell {
 
     /** {@inheritDoc} */
     @Override
-    public int nextInt() {
+    protected int next(final int bits) {
 
         // compute raw value given by WELL44497a generator
         // which is NOT maximally-equidistributed
@@ -112,6 +112,8 @@ public class Well44497b extends AbstractWell {
         z4 ^= (z4 <<  7) & 0x93dd1400;
         z4 ^= (z4 << 15) & 0xfa118000;
 
-        return z4;
+        return z4 >>> (32 - bits);
+
     }
+
 }

http://git-wip-us.apache.org/repos/asf/commons-math/blob/df46ed5e/src/main/java/org/apache/commons/math4/random/Well512a.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/math4/random/Well512a.java b/src/main/java/org/apache/commons/math4/random/Well512a.java
index 55fc6db..391bb2f 100644
--- a/src/main/java/org/apache/commons/math4/random/Well512a.java
+++ b/src/main/java/org/apache/commons/math4/random/Well512a.java
@@ -82,7 +82,7 @@ public class Well512a extends AbstractWell {
 
     /** {@inheritDoc} */
     @Override
-    public int nextInt() {
+    protected int next(final int bits) {
 
         final int indexRm1 = TABLE.getIndexPred(index);
 
@@ -101,6 +101,8 @@ public class Well512a extends AbstractWell {
         v[indexRm1]  = z4;
         index    = indexRm1;
 
-        return z4;
+        return z4 >>> (32 - bits);
+
     }
+
 }

http://git-wip-us.apache.org/repos/asf/commons-math/blob/df46ed5e/src/test/java/org/apache/commons/math4/random/Well1024aTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/math4/random/Well1024aTest.java b/src/test/java/org/apache/commons/math4/random/Well1024aTest.java
index 242c24d..d5e0e67 100644
--- a/src/test/java/org/apache/commons/math4/random/Well1024aTest.java
+++ b/src/test/java/org/apache/commons/math4/random/Well1024aTest.java
@@ -21,7 +21,7 @@ import org.apache.commons.math4.random.Well1024a;
 import org.junit.Assert;
 import org.junit.Test;
 
-public class Well1024aTest extends BaseRandomGeneratorTest {
+public class Well1024aTest extends RandomGeneratorAbstractTest {
 
     @Override
     protected RandomGenerator makeGenerator() {

http://git-wip-us.apache.org/repos/asf/commons-math/blob/df46ed5e/src/test/java/org/apache/commons/math4/random/Well19937aTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/math4/random/Well19937aTest.java b/src/test/java/org/apache/commons/math4/random/Well19937aTest.java
index 00ff92b..97f05f4 100644
--- a/src/test/java/org/apache/commons/math4/random/Well19937aTest.java
+++ b/src/test/java/org/apache/commons/math4/random/Well19937aTest.java
@@ -21,7 +21,7 @@ import org.apache.commons.math4.random.Well19937a;
 import org.junit.Assert;
 import org.junit.Test;
 
-public class Well19937aTest extends BaseRandomGeneratorTest {
+public class Well19937aTest extends RandomGeneratorAbstractTest {
 
     @Override
     public RandomGenerator makeGenerator() {

http://git-wip-us.apache.org/repos/asf/commons-math/blob/df46ed5e/src/test/java/org/apache/commons/math4/random/Well19937cTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/math4/random/Well19937cTest.java b/src/test/java/org/apache/commons/math4/random/Well19937cTest.java
index a97cbcc..cfffcd1 100644
--- a/src/test/java/org/apache/commons/math4/random/Well19937cTest.java
+++ b/src/test/java/org/apache/commons/math4/random/Well19937cTest.java
@@ -21,7 +21,7 @@ import org.apache.commons.math4.random.Well19937c;
 import org.junit.Assert;
 import org.junit.Test;
 
-public class Well19937cTest extends BaseRandomGeneratorTest {
+public class Well19937cTest extends RandomGeneratorAbstractTest {
 
     @Override
     public RandomGenerator makeGenerator() {

http://git-wip-us.apache.org/repos/asf/commons-math/blob/df46ed5e/src/test/java/org/apache/commons/math4/random/Well44497aTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/math4/random/Well44497aTest.java b/src/test/java/org/apache/commons/math4/random/Well44497aTest.java
index 426f3cd..e6dc96f 100644
--- a/src/test/java/org/apache/commons/math4/random/Well44497aTest.java
+++ b/src/test/java/org/apache/commons/math4/random/Well44497aTest.java
@@ -21,7 +21,7 @@ import org.apache.commons.math4.random.Well44497a;
 import org.junit.Assert;
 import org.junit.Test;
 
-public class Well44497aTest extends BaseRandomGeneratorTest {
+public class Well44497aTest extends RandomGeneratorAbstractTest {
 
     @Override
     public RandomGenerator makeGenerator() {

http://git-wip-us.apache.org/repos/asf/commons-math/blob/df46ed5e/src/test/java/org/apache/commons/math4/random/Well44497bTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/math4/random/Well44497bTest.java b/src/test/java/org/apache/commons/math4/random/Well44497bTest.java
index 6ce8d79..7f3dee1 100644
--- a/src/test/java/org/apache/commons/math4/random/Well44497bTest.java
+++ b/src/test/java/org/apache/commons/math4/random/Well44497bTest.java
@@ -21,7 +21,7 @@ import org.apache.commons.math4.random.Well44497b;
 import org.junit.Assert;
 import org.junit.Test;
 
-public class Well44497bTest extends BaseRandomGeneratorTest {
+public class Well44497bTest extends RandomGeneratorAbstractTest {
 
     @Override
     public RandomGenerator makeGenerator() {

http://git-wip-us.apache.org/repos/asf/commons-math/blob/df46ed5e/src/test/java/org/apache/commons/math4/random/Well512aTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/math4/random/Well512aTest.java b/src/test/java/org/apache/commons/math4/random/Well512aTest.java
index 3f63688..192d7d5 100644
--- a/src/test/java/org/apache/commons/math4/random/Well512aTest.java
+++ b/src/test/java/org/apache/commons/math4/random/Well512aTest.java
@@ -21,7 +21,7 @@ import org.apache.commons.math4.random.Well512a;
 import org.junit.Assert;
 import org.junit.Test;
 
-public class Well512aTest extends BaseRandomGeneratorTest {
+public class Well512aTest extends RandomGeneratorAbstractTest {
 
     @Override
     public RandomGenerator makeGenerator() {