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 19b7bde700e6c652e4425c8edbbc5e9ecf1c0a64
Author: aherbert <[email protected]>
AuthorDate: Fri Sep 27 12:13:28 2019 +0100

    RNG-118: RandomSource values for XoRoShiRo PlusPlus generators.
    
    XO_SHI_RO_128_PP
    XO_RO_SHI_RO_128_PP
    XO_SHI_RO_256_PP
    XO_SHI_RO_512_PP
    XO_RO_SHI_RO_1024_PP
    XO_RO_SHI_RO_1024_S
    XO_RO_SHI_RO_1024_SS
---
 .../commons/rng/examples/jmh/BaselineSources.java  |  7 +++
 .../rng/examples/jmh/RandomSourceValues.java       |  7 +++
 .../apache/commons/rng/simple/RandomSource.java    | 58 +++++++++++++++++++++-
 .../rng/simple/internal/ProviderBuilder.java       | 37 +++++++++++++-
 .../apache/commons/rng/simple/ProvidersList.java   |  7 +++
 .../RandomSourceInternalParametricTest.java        |  7 +++
 6 files changed, 121 insertions(+), 2 deletions(-)

diff --git 
a/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/BaselineSources.java
 
b/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/BaselineSources.java
index 7961594..0c754fc 100644
--- 
a/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/BaselineSources.java
+++ 
b/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/BaselineSources.java
@@ -97,6 +97,13 @@ public abstract class BaselineSources {
             "SFC_64",
             "JSF_32",
             "JSF_64",
+            "XO_SHI_RO_128_PP",
+            "XO_RO_SHI_RO_128_PP",
+            "XO_SHI_RO_256_PP",
+            "XO_SHI_RO_512_PP",
+            "XO_RO_SHI_RO_1024_PP",
+            "XO_RO_SHI_RO_1024_S",
+            "XO_RO_SHI_RO_1024_SS",
             })
     private String randomSourceName;
 
diff --git 
a/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/RandomSourceValues.java
 
b/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/RandomSourceValues.java
index db643e5..2926bd7 100644
--- 
a/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/RandomSourceValues.java
+++ 
b/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/RandomSourceValues.java
@@ -75,6 +75,13 @@ public class RandomSourceValues {
             "SFC_64",
             "JSF_32",
             "JSF_64",
+            "XO_SHI_RO_128_PP",
+            "XO_RO_SHI_RO_128_PP",
+            "XO_SHI_RO_256_PP",
+            "XO_SHI_RO_512_PP",
+            "XO_RO_SHI_RO_1024_PP",
+            "XO_RO_SHI_RO_1024_S",
+            "XO_RO_SHI_RO_1024_SS",
             })
     private String randomSourceName;
 
diff --git 
a/commons-rng-simple/src/main/java/org/apache/commons/rng/simple/RandomSource.java
 
b/commons-rng-simple/src/main/java/org/apache/commons/rng/simple/RandomSource.java
index b98f060..33674b4 100644
--- 
a/commons-rng-simple/src/main/java/org/apache/commons/rng/simple/RandomSource.java
+++ 
b/commons-rng-simple/src/main/java/org/apache/commons/rng/simple/RandomSource.java
@@ -458,7 +458,63 @@ public enum RandomSource {
      *  <li>Native seed type: {@code Long}.</li>
      * </ul>
      */
-    JSF_64(ProviderBuilder.RandomSourceInternal.JSF_64);
+    JSF_64(ProviderBuilder.RandomSourceInternal.JSF_64),
+    /**
+     * Source of randomness is {@link 
org.apache.commons.rng.core.source32.XoShiRo128PlusPlus}.
+     * <ul>
+     *  <li>Native seed type: {@code int[]}.</li>
+     *  <li>Native seed size: 4.</li>
+     * </ul>
+     */
+    XO_SHI_RO_128_PP(ProviderBuilder.RandomSourceInternal.XO_SHI_RO_128_PP),
+    /**
+     * Source of randomness is {@link 
org.apache.commons.rng.core.source64.XoRoShiRo128PlusPlus}.
+     * <ul>
+     *  <li>Native seed type: {@code long[]}.</li>
+     *  <li>Native seed size: 2.</li>
+     * </ul>
+     */
+    
XO_RO_SHI_RO_128_PP(ProviderBuilder.RandomSourceInternal.XO_RO_SHI_RO_128_PP),
+    /**
+     * Source of randomness is {@link 
org.apache.commons.rng.core.source64.XoShiRo256PlusPlus}.
+     * <ul>
+     *  <li>Native seed type: {@code long[]}.</li>
+     *  <li>Native seed size: 4.</li>
+     * </ul>
+     */
+    XO_SHI_RO_256_PP(ProviderBuilder.RandomSourceInternal.XO_SHI_RO_256_PP),
+    /**
+     * Source of randomness is {@link 
org.apache.commons.rng.core.source64.XoShiRo512PlusPlus}.
+     * <ul>
+     *  <li>Native seed type: {@code long[]}.</li>
+     *  <li>Native seed size: 8.</li>
+     * </ul>
+     */
+    XO_SHI_RO_512_PP(ProviderBuilder.RandomSourceInternal.XO_SHI_RO_512_PP),
+    /**
+     * Source of randomness is {@link 
org.apache.commons.rng.core.source64.XoRoShiRo1024PlusPlus}.
+     * <ul>
+     *  <li>Native seed type: {@code long[]}.</li>
+     *  <li>Native seed size: 16.</li>
+     * </ul>
+     */
+    
XO_RO_SHI_RO_1024_PP(ProviderBuilder.RandomSourceInternal.XO_RO_SHI_RO_1024_PP),
+    /**
+     * Source of randomness is {@link 
org.apache.commons.rng.core.source64.XoRoShiRo1024Star}.
+     * <ul>
+     *  <li>Native seed type: {@code long[]}.</li>
+     *  <li>Native seed size: 16.</li>
+     * </ul>
+     */
+    
XO_RO_SHI_RO_1024_S(ProviderBuilder.RandomSourceInternal.XO_RO_SHI_RO_1024_S),
+    /**
+     * Source of randomness is {@link 
org.apache.commons.rng.core.source64.XoRoShiRo1024StarStar}.
+     * <ul>
+     *  <li>Native seed type: {@code long[]}.</li>
+     *  <li>Native seed size: 16.</li>
+     * </ul>
+     */
+    
XO_RO_SHI_RO_1024_SS(ProviderBuilder.RandomSourceInternal.XO_RO_SHI_RO_1024_SS);
 
     /** Internal identifier. */
     private final ProviderBuilder.RandomSourceInternal internalIdentifier;
diff --git 
a/commons-rng-simple/src/main/java/org/apache/commons/rng/simple/internal/ProviderBuilder.java
 
b/commons-rng-simple/src/main/java/org/apache/commons/rng/simple/internal/ProviderBuilder.java
index 1739ea5..4c6f0ef 100644
--- 
a/commons-rng-simple/src/main/java/org/apache/commons/rng/simple/internal/ProviderBuilder.java
+++ 
b/commons-rng-simple/src/main/java/org/apache/commons/rng/simple/internal/ProviderBuilder.java
@@ -37,6 +37,7 @@ import org.apache.commons.rng.core.source32.KISSRandom;
 import org.apache.commons.rng.core.source32.XoRoShiRo64Star;
 import org.apache.commons.rng.core.source32.XoRoShiRo64StarStar;
 import org.apache.commons.rng.core.source32.XoShiRo128Plus;
+import org.apache.commons.rng.core.source32.XoShiRo128PlusPlus;
 import org.apache.commons.rng.core.source32.XoShiRo128StarStar;
 import org.apache.commons.rng.core.source32.PcgXshRr32;
 import org.apache.commons.rng.core.source32.PcgXshRs32;
@@ -48,12 +49,18 @@ import org.apache.commons.rng.core.source64.SplitMix64;
 import org.apache.commons.rng.core.source64.XorShift1024Star;
 import org.apache.commons.rng.core.source64.XorShift1024StarPhi;
 import org.apache.commons.rng.core.source64.TwoCmres;
+import org.apache.commons.rng.core.source64.XoRoShiRo1024PlusPlus;
+import org.apache.commons.rng.core.source64.XoRoShiRo1024Star;
+import org.apache.commons.rng.core.source64.XoRoShiRo1024StarStar;
 import org.apache.commons.rng.core.source64.MersenneTwister64;
 import org.apache.commons.rng.core.source64.XoRoShiRo128Plus;
+import org.apache.commons.rng.core.source64.XoRoShiRo128PlusPlus;
 import org.apache.commons.rng.core.source64.XoRoShiRo128StarStar;
 import org.apache.commons.rng.core.source64.XoShiRo256Plus;
+import org.apache.commons.rng.core.source64.XoShiRo256PlusPlus;
 import org.apache.commons.rng.core.source64.XoShiRo256StarStar;
 import org.apache.commons.rng.core.source64.XoShiRo512Plus;
+import org.apache.commons.rng.core.source64.XoShiRo512PlusPlus;
 import org.apache.commons.rng.core.source64.XoShiRo512StarStar;
 import org.apache.commons.rng.core.source64.PcgRxsMXs64;
 import org.apache.commons.rng.core.source64.DotyHumphreySmallFastCounting64;
@@ -319,7 +326,35 @@ public final class ProviderBuilder {
         /** Source of randomness is {@link JenkinsSmallFast64}. */
         JSF_64(JenkinsSmallFast64.class,
                1,
-               NativeSeedType.LONG);
+               NativeSeedType.LONG),
+        /** Source of randomness is {@link XoShiRo128PlusPlus}. */
+        XO_SHI_RO_128_PP(XoShiRo128PlusPlus.class,
+                         4,
+                         NativeSeedType.INT_ARRAY),
+        /** Source of randomness is {@link XoRoShiRo128PlusPlus}. */
+        XO_RO_SHI_RO_128_PP(XoRoShiRo128PlusPlus.class,
+                            2,
+                            NativeSeedType.LONG_ARRAY),
+        /** Source of randomness is {@link XoShiRo256PlusPlus}. */
+        XO_SHI_RO_256_PP(XoShiRo256PlusPlus.class,
+                         4,
+                         NativeSeedType.LONG_ARRAY),
+        /** Source of randomness is {@link XoShiRo512PlusPlus}. */
+        XO_SHI_RO_512_PP(XoShiRo512PlusPlus.class,
+                         8,
+                         NativeSeedType.LONG_ARRAY),
+        /** Source of randomness is {@link XoRoShiRo1024PlusPlus}. */
+        XO_RO_SHI_RO_1024_PP(XoRoShiRo1024PlusPlus.class,
+                             16,
+                             NativeSeedType.LONG_ARRAY),
+        /** Source of randomness is {@link XoRoShiRo1024Star}. */
+        XO_RO_SHI_RO_1024_S(XoRoShiRo1024Star.class,
+                            16,
+                            NativeSeedType.LONG_ARRAY),
+        /** Source of randomness is {@link XoRoShiRo1024StarStar}. */
+        XO_RO_SHI_RO_1024_SS(XoRoShiRo1024StarStar.class,
+                             16,
+                             NativeSeedType.LONG_ARRAY);
 
         /** Source type. */
         private final Class<? extends UniformRandomProvider> rng;
diff --git 
a/commons-rng-simple/src/test/java/org/apache/commons/rng/simple/ProvidersList.java
 
b/commons-rng-simple/src/test/java/org/apache/commons/rng/simple/ProvidersList.java
index 3cc655d..26c87cb 100644
--- 
a/commons-rng-simple/src/test/java/org/apache/commons/rng/simple/ProvidersList.java
+++ 
b/commons-rng-simple/src/test/java/org/apache/commons/rng/simple/ProvidersList.java
@@ -64,6 +64,7 @@ public final class ProvidersList {
             // it will not output random data.
             add(LIST32, RandomSource.MSWS, new long[] {687233648L, 
678656564562300L, 0xb5ad4eceda1ce2a9L});
             add(LIST32, RandomSource.SFC_32, new int[] {-23574234, 7654343});
+            add(LIST32, RandomSource.XO_SHI_RO_128_PP, new int[] {8796823, 
-3244890, -263842});
             // ... add more here.
 
             // "long"-based RNGs.
@@ -81,6 +82,12 @@ public final class ProvidersList {
             add(LIST64, RandomSource.XO_SHI_RO_512_SS, new long[] {123L, 
-654654L, 45646789L});
             add(LIST64, RandomSource.PCG_RXS_M_XS_64, new long[] {42088L, 
69271L});
             add(LIST64, RandomSource.SFC_64, new long[] {-2357423478979842L, 
76543434515L});
+            add(LIST64, RandomSource.XO_RO_SHI_RO_128_PP, new long[] 
{789741321465L, -461321684612L, -12301654794L});
+            add(LIST64, RandomSource.XO_SHI_RO_256_PP, new long[] {2374243L, 
-8097397345383L, -223479293943L});
+            add(LIST64, RandomSource.XO_SHI_RO_512_PP, new long[] 
{-1210684761321465L, -485132198745L, 89942134798523L});
+            add(LIST64, RandomSource.XO_RO_SHI_RO_1024_PP, new long[] 
{236424345654L, 781544546164721L, -85235476312346L});
+            add(LIST64, RandomSource.XO_RO_SHI_RO_1024_S, new long[] 
{-1574314L, 7879874453221215L, -7894343883216L});
+            add(LIST64, RandomSource.XO_RO_SHI_RO_1024_SS, new long[] 
{-41514541234654321L, -12146412316546L, 7984134134L});
             // ... add more here.
 
             // Do not modify the remaining statements.
diff --git 
a/commons-rng-simple/src/test/java/org/apache/commons/rng/simple/internal/RandomSourceInternalParametricTest.java
 
b/commons-rng-simple/src/test/java/org/apache/commons/rng/simple/internal/RandomSourceInternalParametricTest.java
index e58f4ff..737b73c 100644
--- 
a/commons-rng-simple/src/test/java/org/apache/commons/rng/simple/internal/RandomSourceInternalParametricTest.java
+++ 
b/commons-rng-simple/src/test/java/org/apache/commons/rng/simple/internal/RandomSourceInternalParametricTest.java
@@ -90,6 +90,13 @@ public class RandomSourceInternalParametricTest {
         EXPECTED_SEED_BYTES.put(RandomSourceInternal.SFC_64, longBytes * 3);
         EXPECTED_SEED_BYTES.put(RandomSourceInternal.JSF_32, intBytes * 1);
         EXPECTED_SEED_BYTES.put(RandomSourceInternal.JSF_64, longBytes * 1);
+        EXPECTED_SEED_BYTES.put(RandomSourceInternal.XO_SHI_RO_128_PP, 
intBytes * 4);
+        EXPECTED_SEED_BYTES.put(RandomSourceInternal.XO_RO_SHI_RO_128_PP, 
longBytes * 2);
+        EXPECTED_SEED_BYTES.put(RandomSourceInternal.XO_SHI_RO_256_PP, 
longBytes * 4);
+        EXPECTED_SEED_BYTES.put(RandomSourceInternal.XO_SHI_RO_512_PP, 
longBytes * 8);
+        EXPECTED_SEED_BYTES.put(RandomSourceInternal.XO_RO_SHI_RO_1024_PP, 
longBytes * 16);
+        EXPECTED_SEED_BYTES.put(RandomSourceInternal.XO_RO_SHI_RO_1024_S, 
longBytes * 16);
+        EXPECTED_SEED_BYTES.put(RandomSourceInternal.XO_RO_SHI_RO_1024_SS, 
longBytes * 16);
         // ... add more here.
         // Verify the seed byte size is reflected in the enum javadoc for 
RandomSource.
     }

Reply via email to