L128X1024MixRandom implements
interfaces RandomGenerator and SplittableGenerator,
and therefore supports methods for producing pseudorandomly chosen
values of type int, long, float, double,
and boolean (and for producing streams of pseudorandomly chosen
numbers of type int, long, and double),
as well as methods for creating new split-off L128X1024MixRandom
objects or streams of such objects.
The L128X1024MixRandom algorithm is a specific member of
the LXM family of algorithms for pseudorandom number generators;
for more information, see the documentation for package
jdk.. Each instance of L128X1024MixRandom
has 1152 bits of state plus one 128-bit instance-specific parameter.
If two instances of L128X1024MixRandom are created with
the same seed within the same program execution, and the same
sequence of method calls is made for each, they will generate and
return identical sequences of values.
As with java., instances of
L128X1024MixRandom are not thread-safe. They are
designed to be split, not shared, across threads (see the split
method). For example, a java.
fork/join-style computation using random numbers might include a
construction of the form
new Subtask(someL128X1024MixRandom.split()).fork().
This class provides additional methods for generating random
streams, that employ the above techniques when used in
stream.parallel() mode.
Instances of L128X1024MixRandom are not cryptographically
secure. Consider instead using java.
in security-sensitive applications. Additionally,
default-constructed instances do not use a cryptographically random
seed unless the system property
java.util.secureRandomSeed is set to true.
| Modifier and Type | Field and Description |
|---|---|
| private final long | ah
The parameter that is used as an additive constant for the LCG. |
| private final long | al
The parameter that is used as an additive constant for the LCG. |
| private static final AtomicLong | defaultGen
The seed generator for default constructors. |
| private static final long | |
| private static final int | |
| private int | |
| private long | sh
The per-instance state: sh and sl for the LCG; the array x for the XBG; p is the rotating pointer into the array x. |
| private long | sl
The per-instance state: sh and sl for the LCG; the array x for the XBG; p is the rotating pointer into the array x. |
| private final long[] |
| Access | Constructor and Description |
|---|---|
| public | L128X1024MixRandom(long
high half of the additive parameter for the LCG ah, long low half of the additive parameter for the LCG al, long high half of the initial state for the LCG sh, long low half of the initial state for the LCG sl, long first word of the initial state for the XBG x0, long second word of the initial state for the XBG x1, long third word of the initial state for the XBG x2, long fourth word of the initial state for the XBG x3, long fifth word of the initial state for the XBG x4, long sixth word of the initial state for the XBG x5, long seventh word of the initial state for the XBG x6, long eight word of the initial state for the XBG x7, long ninth word of the initial state for the XBG x8, long tenth word of the initial state for the XBG x9, long eleventh word of the initial state for the XBG x10, long twelfth word of the initial state for the XBG x11, long thirteenth word of the initial state for the XBG x12, long fourteenth word of the initial state for the XBG x13, long fifteenth word of the initial state for the XBG x14, long sixteenth word of the initial state for the XBG x15)Basic constructor that initializes all fields from parameters. |
| public | L128X1024MixRandom(long
the initial seed seed)Creates a new instance of |
| public | L128X1024MixRandom()
Creates a new instance of |
| public | L128X1024MixRandom(byte[]
the initial seed seed)Creates a new instance of |
| Modifier and Type | Method and Description |
|---|---|
| public long | nextLong()
Implements java. Returns a pseudorandomly chosen |
| public RandomGenerator. | split(RandomGenerator.
Implements abstract jdk.
|
| ah | back to summary |
|---|---|
| private final long ah The parameter that is used as an additive constant for the LCG. Must be odd (therefore al must be odd). | |
| al | back to summary |
|---|---|
| private final long al The parameter that is used as an additive constant for the LCG. Must be odd (therefore al must be odd). | |
| defaultGen | back to summary |
|---|---|
| private static final AtomicLong defaultGen The seed generator for default constructors. | |
| ML | back to summary |
|---|---|
| private static final long ML | |
| N | back to summary |
|---|---|
| private static final int N | |
| p | back to summary |
|---|---|
| private int p | |
| sh | back to summary |
|---|---|
| private long sh The per-instance state: sh and sl for the LCG; the array x for the XBG; p is the rotating pointer into the array x. At least one of the 16 elements of the array x must be nonzero. | |
| sl | back to summary |
|---|---|
| private long sl The per-instance state: sh and sl for the LCG; the array x for the XBG; p is the rotating pointer into the array x. At least one of the 16 elements of the array x must be nonzero. | |
| x | back to summary |
|---|---|
| private final long[] x | |
| L128X1024MixRandom | back to summary |
|---|---|
| public L128X1024MixRandom(long ah, long al, long sh, long sl, long x0, long x1, long x2, long x3, long x4, long x5, long x6, long x7, long x8, long x9, long x10, long x11, long x12, long x13, long x14, long x15) Basic constructor that initializes all fields from parameters. It then adjusts the field values if necessary to ensure that all constraints on the values of fields are met.
| |
| L128X1024MixRandom | back to summary |
|---|---|
| public L128X1024MixRandom(long seed) Creates a new instance of
| |
| L128X1024MixRandom | back to summary |
|---|---|
| public L128X1024MixRandom() Creates a new instance of | |
| L128X1024MixRandom | back to summary |
|---|---|
| public L128X1024MixRandom(byte[] seed) Creates a new instance of
| |
| nextLong | back to summary |
|---|---|
| public long nextLong() Implements java. Doc from java. Returns a pseudorandomly chosen
| |
| split | back to summary |
|---|---|
| public RandomGenerator. Implements abstract jdk.
| |