L64X1024MixRandom
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 L64X1024MixRandom
objects or streams of such objects.
The L64X1024MixRandom
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 L64X1024MixRandom
has 1088 bits of state plus one 64-bit instance-specific parameter.
If two instances of L64X1024MixRandom
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
L64X1024MixRandom
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(someL64X1024MixRandom.split()).fork()
.
This class provides additional methods for generating random
streams, that employ the above techniques when used in
stream.parallel()
mode.
Instances of L64X1024MixRandom
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 | a
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 | s
The per-instance state: s 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 | L64X1024MixRandom(long
additive parameter for the LCG a, long initial state for the LCG s, 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 | L64X1024MixRandom(long
the initial seed seed)Creates a new instance of |
public | L64X1024MixRandom()
Creates a new instance of |
public | L64X1024MixRandom(byte[]
the initial seed seed)Creates a new instance of |
Modifier and Type | Method and Description |
---|---|
public long | nextLong()
Implements java. long value.
|
public RandomGenerator. | split(RandomGenerator.
Implements abstract jdk. |
a | back to summary |
---|---|
private final long a The parameter that is used as an additive constant for the LCG. Must be odd. |
defaultGen | back to summary |
---|---|
private static final AtomicLong defaultGen The seed generator for default constructors. |
M | back to summary |
---|---|
private static final long M |
N | back to summary |
---|---|
private static final int N |
p | back to summary |
---|---|
private int p |
s | back to summary |
---|---|
private long s The per-instance state: s 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 |
L64X1024MixRandom | back to summary |
---|---|
public L64X1024MixRandom(long a, long s, 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.
|
L64X1024MixRandom | back to summary |
---|---|
public L64X1024MixRandom(long seed) Creates a new instance of
|
L64X1024MixRandom | back to summary |
---|---|
public L64X1024MixRandom() Creates a new instance of |
L64X1024MixRandom | back to summary |
---|---|
public L64X1024MixRandom(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.
|