diff -r 1ca1cfdcb451 -r 56cbdc3ea079 src/java.base/share/classes/java/util/random/L64X128MixRandom.java --- a/src/java.base/share/classes/java/util/random/L64X128MixRandom.java Fri Jul 26 15:20:31 2019 -0300 +++ b/src/java.base/share/classes/java/util/random/L64X128MixRandom.java Fri Jul 26 15:37:05 2019 -0300 @@ -27,12 +27,14 @@ import java.math.BigInteger; import java.util.concurrent.atomic.AtomicLong; +import java.util.random.RandomGenerator.SplittableGenerator; +import java.util.random.RandomSupport.AbstractSplittableGenerator; /** * A generator of uniform pseudorandom values applicable for use in * (among other contexts) isolated parallel computations that may * generate subtasks. Class {@link L64X128MixRandom} implements - * interfaces {@link RandomNumberGenerator} and {@link SplittableRNG}, + * interfaces {@link RandomGenerator} and {@link SplittableGenerator}, * and therefore supports methods for producing pseudorandomly chosen * numbers of type {@code int}, {@code long}, {@code float}, and {@code double} * as well as creating new split-off {@link L64X128MixRandom} objects, @@ -134,7 +136,7 @@ * * @since 14 */ -public final class L64X128MixRandom extends AbstractSplittableRNG { +public final class L64X128MixRandom extends AbstractSplittableGenerator { /* * Implementation Overview. @@ -168,7 +170,7 @@ /** * The seed generator for default constructors. */ - private static final AtomicLong defaultGen = new AtomicLong(RNGSupport.initialSeed()); + private static final AtomicLong defaultGen = new AtomicLong(RandomSupport.initialSeed()); /* * The period of this generator, which is (2**128 - 1) * 2**64. @@ -221,8 +223,8 @@ // If x0 and x1 are both zero, we must choose nonzero values. if ((x0 | x1) == 0) { // At least one of the two values generated here will be nonzero. - this.x0 = RNGSupport.mixStafford13(s += RNGSupport.GOLDEN_RATIO_64); - this.x1 = RNGSupport.mixStafford13(s + RNGSupport.GOLDEN_RATIO_64); + this.x0 = RandomSupport.mixStafford13(s += RandomSupport.GOLDEN_RATIO_64); + this.x1 = RandomSupport.mixStafford13(s + RandomSupport.GOLDEN_RATIO_64); } } @@ -244,10 +246,10 @@ // which will then be used to produce the first generated value. // Then x1 is filled in as if by a SplitMix PRNG with // GOLDEN_RATIO_64 as the gamma value and Stafford13 as the mixer. - this(RNGSupport.mixMurmur64(seed ^= RNGSupport.SILVER_RATIO_64), + this(RandomSupport.mixMurmur64(seed ^= RandomSupport.SILVER_RATIO_64), 1, - RNGSupport.mixStafford13(seed), - RNGSupport.mixStafford13(seed + RNGSupport.GOLDEN_RATIO_64)); + RandomSupport.mixStafford13(seed), + RandomSupport.mixStafford13(seed + RandomSupport.GOLDEN_RATIO_64)); } /** @@ -258,7 +260,7 @@ */ public L64X128MixRandom() { // Using GOLDEN_RATIO_64 here gives us a good Weyl sequence of values. - this(defaultGen.getAndAdd(RNGSupport.GOLDEN_RATIO_64)); + this(defaultGen.getAndAdd(RandomSupport.GOLDEN_RATIO_64)); } /** @@ -270,7 +272,7 @@ */ public L64X128MixRandom(byte[] seed) { // Convert the seed to 4 long values, of which the last 2 are not all zero. - long[] data = RNGSupport.convertSeedBytesToLongs(seed, 4, 2); + long[] data = RandomSupport.convertSeedBytesToLongs(seed, 4, 2); long a = data[0], s = data[1], x0 = data[2], x1 = data[3]; // Force a to be odd. this.a = a | 1; @@ -292,13 +294,13 @@ * and the same expected statistical properties apply to the * entire set of generators constructed by such recursive splitting. * - * @param source a {@link SplittableRNG} instance to be used instead + * @param source a {@link SplittableGenerator} instance to be used instead * of this one as a source of pseudorandom bits used to * initialize the state of the new ones. * * @return a new instance of {@link L64X128MixRandom} */ - public L64X128MixRandom split(SplittableRNG source) { + public L64X128MixRandom split(SplittableGenerator source) { // Literally pick a new instance "at random". return new L64X128MixRandom(source.nextLong(), source.nextLong(), source.nextLong(), source.nextLong());