You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ah...@apache.org on 2019/09/30 10:40:01 UTC
[commons-rng] 01/02: RNG-76: Added primitive long constructor to
SplitMix64
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
commit 5ed9a195d19758e1291fadd8cca84828f12d1bc6
Author: Alex Herbert <ah...@apache.org>
AuthorDate: Fri Mar 1 21:09:31 2019 +0000
RNG-76: Added primitive long constructor to SplitMix64
---
.../org/apache/commons/rng/core/source64/SplitMix64.java | 13 ++++++++++++-
.../apache/commons/rng/core/source64/SplitMix64Test.java | 7 ++++++-
2 files changed, 18 insertions(+), 2 deletions(-)
diff --git a/commons-rng-core/src/main/java/org/apache/commons/rng/core/source64/SplitMix64.java b/commons-rng-core/src/main/java/org/apache/commons/rng/core/source64/SplitMix64.java
index 145c874..df243d2 100644
--- a/commons-rng-core/src/main/java/org/apache/commons/rng/core/source64/SplitMix64.java
+++ b/commons-rng-core/src/main/java/org/apache/commons/rng/core/source64/SplitMix64.java
@@ -37,7 +37,18 @@ public class SplitMix64 extends LongProvider {
*
* @param seed Initial seed.
*/
+ public SplitMix64(long seed) {
+ state = seed;
+ }
+
+ /**
+ * Creates a new instance.
+ *
+ * @param seed Initial seed.
+ */
public SplitMix64(Long seed) {
+ // Support for Long to allow instantiation through the
+ // rng.simple.RandomSource factory methods.
setSeedInternal(seed);
}
@@ -47,7 +58,7 @@ public class SplitMix64 extends LongProvider {
* @param seed Seed.
*/
private void setSeedInternal(Long seed) {
- state = seed;
+ state = seed.longValue();
}
/** {@inheritDoc} */
diff --git a/commons-rng-core/src/test/java/org/apache/commons/rng/core/source64/SplitMix64Test.java b/commons-rng-core/src/test/java/org/apache/commons/rng/core/source64/SplitMix64Test.java
index affa81f..5ec141c 100644
--- a/commons-rng-core/src/test/java/org/apache/commons/rng/core/source64/SplitMix64Test.java
+++ b/commons-rng-core/src/test/java/org/apache/commons/rng/core/source64/SplitMix64Test.java
@@ -35,6 +35,11 @@ public class SplitMix64Test {
0x24b5d9d7a00a3140L, 0x79d983d781a34a3cL, 0x582e4a84d595f5ecL, 0x7316fe8b0f606d20L,
};
- RandomAssert.assertEquals(expectedSequence, new SplitMix64(0x1a2b3c4d5e6f7531L));
+ final long seed = 0x1a2b3c4d5e6f7531L;
+
+ RandomAssert.assertEquals(expectedSequence, new SplitMix64(seed));
+
+ // Test with Long
+ RandomAssert.assertEquals(expectedSequence, new SplitMix64(Long.valueOf(seed)));
}
}