[prev in list] [next in list] [prev in thread] [next in thread]
List: jakarta-commons-dev
Subject: commons-rng git commit: Removed method from public API.
From: erans () apache ! org
Date: 2016-08-30 16:22:26
Message-ID: e82c9aff745942758c00672e19ece9ab () git ! apache ! org
[Download RAW message or body]
Repository: commons-rng
Updated Branches:
refs/heads/master bc86f3f09 -> 4a33b27b7
Removed method from public API.
Javadoc of "TWO_CMRES" documents the valid choices.
Project: http://git-wip-us.apache.org/repos/asf/commons-rng/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-rng/commit/4a33b27b
Tree: http://git-wip-us.apache.org/repos/asf/commons-rng/tree/4a33b27b
Diff: http://git-wip-us.apache.org/repos/asf/commons-rng/diff/4a33b27b
Branch: refs/heads/master
Commit: 4a33b27b711abf1a171b2fdbe852d3d407f69e6a
Parents: bc86f3f
Author: Gilles <erans@apache.org>
Authored: Tue Aug 30 18:19:08 2016 +0200
Committer: Gilles <erans@apache.org>
Committed: Tue Aug 30 18:19:08 2016 +0200
----------------------------------------------------------------------
.../org/apache/commons/rng/RandomSource.java | 17 ++++------
.../rng/internal/source64/TwoCmresTest.java | 33 ++++++++++++++++++++
2 files changed, 39 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/commons-rng/blob/4a33b27b/src/main/java/org/apache/commons/rng/RandomSource.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/rng/RandomSource.java \
b/src/main/java/org/apache/commons/rng/RandomSource.java index 9b7c120..65d014f \
100644
--- a/src/main/java/org/apache/commons/rng/RandomSource.java
+++ b/src/main/java/org/apache/commons/rng/RandomSource.java
@@ -20,7 +20,6 @@ import java.util.Arrays;
import org.apache.commons.rng.internal.ProviderBuilder;
import org.apache.commons.rng.internal.BaseProvider;
import org.apache.commons.rng.internal.util.SeedFactory;
-import org.apache.commons.rng.internal.source64.TwoCmres;
/**
* This class provides the API for creating generators of random numbers.
@@ -255,6 +254,8 @@ public enum RandomSource {
XOR_SHIFT_1024_S(ProviderBuilder.RandomSourceInternal.XOR_SHIFT_1024_S),
/**
* Source of randomness is {@link \
org.apache.commons.rng.internal.source64.TwoCmres}. + * This generator is \
equivalent to {@link #TWO_CMRES_SELECT} with the choice of the + * pair {@code \
(0, 1)} for the two subcycle generators.
* <ul>
* <li>Native seed type: {@code Integer}.</li>
* <li>Native seed size: 1.</li>
@@ -264,6 +265,10 @@ public enum RandomSource {
/**
* Source of randomness is {@link \
org.apache.commons.rng.internal.source64.TwoCmres},
* with explicit selection of the two subcycle generators.
+ * The selection of the subcycle generator is by passing its index in the \
internal + * table, a value between 0 (included) and 13 (included).
+ * The two indices must be different.
+ * Different choices of an ordered pair of indices create independent \
generators.
* <ul>
* <li>Native seed type: {@code Integer}.</li>
* <li>Native seed size: 1.</li>
@@ -433,16 +438,6 @@ public enum RandomSource {
}
/**
- * Gets the number of elements of the set of "subcycle" generators from
- * which two can be selected in order to create a {@link TwoCmres} RNG.
- *
- * @return the number of implemented subcycle generators.
- */
- public static int numberOfCmresGenerators() {
- return TwoCmres.numberOfSubcycleGenerators();
- }
-
- /**
* Saves the state of a RNG.
*
* @param provider Provider.
http://git-wip-us.apache.org/repos/asf/commons-rng/blob/4a33b27b/src/test/java/org/apache/commons/rng/internal/source64/TwoCmresTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/rng/internal/source64/TwoCmresTest.java \
b/src/test/java/org/apache/commons/rng/internal/source64/TwoCmresTest.java index \
16081ae..fc21d20 100644
--- a/src/test/java/org/apache/commons/rng/internal/source64/TwoCmresTest.java
+++ b/src/test/java/org/apache/commons/rng/internal/source64/TwoCmresTest.java
@@ -49,5 +49,38 @@ public class TwoCmresTest {
}
}
}
+
+ @Test
+ public void testSubcycleGeneratorsIndex() {
+ final int seed = 246810;
+
+ // Valid indices are between 0 (included) and max (excluded).
+ final int max = TwoCmres.numberOfSubcycleGenerators();
+
+ for (int i = 0; i < max; i++) {
+ for (int j = 0; j < max; i++) {
+ if (i != j) { // Subcycle generators must be different.
+ // Can be instantiated.
+ new TwoCmres(seed, i, j);
+ }
+ }
+ }
+
+ for (int wrongIndex : new int[] { -1, max }) {
+ try {
+ new TwoCmres(seed, wrongIndex, 1);
+ Assert.fail("Exception expected for index=" + wrongIndex);
+ } catch (IllegalArgumentException e) {
+ // Expected.
+ }
+
+ try {
+ new TwoCmres(seed, 1, wrongIndex);
+ Assert.fail("Exception expected for index=" + wrongIndex);
+ } catch (IllegalArgumentException e) {
+ // Expected.
+ }
+ }
+ }
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic