Class Shuffle
java.lang.Object
io.nosqlbench.virtdata.library.basics.core.lfsrs.MetaShift.Func
io.nosqlbench.virtdata.library.basics.shared.from_long.to_long.Shuffle
- All Implemented Interfaces:
LongUnaryOperator
This function provides a low-overhead shuffling effect without loading
elements into memory. It uses a bundled dataset of pre-computed
Galois LFSR shift register configurations, along with a down-sampling
method to provide amortized virtual shuffling with minimal memory usage.
Essentially, this guarantees that every value in the specified range will
be seen at least once before the cycle repeats. However, since the order
of traversal of these values is dependent on the LFSR configuration, some
orders will appear much more random than others depending on where you
are in the traversal cycle.
This function *does* yield values that are deterministic.
-
Field Summary
Fields inherited from class io.nosqlbench.virtdata.library.basics.core.lfsrs.MetaShift.Func
config, feedback, periodModulo -
Constructor Summary
Constructors -
Method Summary
Methods inherited from class io.nosqlbench.virtdata.library.basics.core.lfsrs.MetaShift.Func
toStringMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface java.util.function.LongUnaryOperator
andThen, compose
-
Constructor Details
-
Shuffle
public Shuffle(long min, long maxPlusOne) -
Shuffle
public Shuffle(long min, long maxPlusOne, int bankSelector)
-
-
Method Details
-
applyAsLong
public long applyAsLong(long register) - Specified by:
applyAsLongin interfaceLongUnaryOperator- Overrides:
applyAsLongin classMetaShift.Func
-