Package org.apache.commons.rng
Interface LongJumpableUniformRandomProvider
-
- All Superinterfaces:
JumpableUniformRandomProvider
,UniformRandomProvider
- All Known Implementing Classes:
L128X1024Mix
,L128X128Mix
,L128X256Mix
,L32X64Mix
,L64X1024Mix
,L64X128Mix
,L64X128StarStar
,L64X256Mix
,XoRoShiRo1024PlusPlus
,XoRoShiRo1024Star
,XoRoShiRo1024StarStar
,XoRoShiRo128Plus
,XoRoShiRo128PlusPlus
,XoRoShiRo128StarStar
,XoShiRo128Plus
,XoShiRo128PlusPlus
,XoShiRo128StarStar
,XoShiRo256Plus
,XoShiRo256PlusPlus
,XoShiRo256StarStar
,XoShiRo512Plus
,XoShiRo512PlusPlus
,XoShiRo512StarStar
public interface LongJumpableUniformRandomProvider extends JumpableUniformRandomProvider
Applies to generators that can be advanced a very large number of steps of the output sequence in a single operation.- Since:
- 1.3
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description JumpableUniformRandomProvider
longJump()
Creates a copy of the JumpableUniformRandomProvider and then advances the state of the current instance.default Stream<JumpableUniformRandomProvider>
longJumps()
Returns an effectively unlimited stream of new random generators, each of which implements theJumpableUniformRandomProvider
interface.default Stream<JumpableUniformRandomProvider>
longJumps(long streamSize)
Returns a stream producing the givenstreamSize
number of new random generators, each of which implements theJumpableUniformRandomProvider
interface.-
Methods inherited from interface org.apache.commons.rng.JumpableUniformRandomProvider
jump, jumps, jumps
-
Methods inherited from interface org.apache.commons.rng.UniformRandomProvider
doubles, doubles, doubles, doubles, ints, ints, ints, ints, longs, longs, longs, longs, nextBoolean, nextBytes, nextBytes, nextDouble, nextDouble, nextDouble, nextFloat, nextFloat, nextFloat, nextInt, nextInt, nextInt, nextLong, nextLong, nextLong
-
-
-
-
Method Detail
-
longJump
JumpableUniformRandomProvider longJump()
Creates a copy of the JumpableUniformRandomProvider and then advances the state of the current instance. The copy is returned.The current state will be advanced in a single operation by the equivalent of a number of sequential calls to a method that updates the state of the provider. The size of the long jump is implementation dependent.
Repeat invocations of this method will create a series of generators that are uniformly spaced at intervals of the output sequence. Each generator provides non-overlapping output for the length of the long jump for use in parallel computations.
The returned copy may be jumped
m / n
times before overlap with the current instance wherem
is the long jump length andn
is the jump length of theJumpableUniformRandomProvider.jump()
method.- Returns:
- A copy of the current state.
-
longJumps
default Stream<JumpableUniformRandomProvider> longJumps()
Returns an effectively unlimited stream of new random generators, each of which implements theJumpableUniformRandomProvider
interface.- Returns:
- a stream of random generators.
- Since:
- 1.5
-
longJumps
default Stream<JumpableUniformRandomProvider> longJumps(long streamSize)
Returns a stream producing the givenstreamSize
number of new random generators, each of which implements theJumpableUniformRandomProvider
interface.- Parameters:
streamSize
- Number of objects to generate.- Returns:
- a stream of random generators; the stream is limited to the given
streamSize
. - Throws:
IllegalArgumentException
- ifstreamSize
is negative.- Since:
- 1.5
-
-